Traditional file sharing systems involve one or more client devices and a centralized server. A client device may upload files to the server to be stored. The files may be retrieved by and/or shared with other client devices. Typically, sharing the files includes a client device having permissions to access the files submitting a request for the server to send the files, or a link to the files, to the desired destination. To secure the files being transmitted to/from the server, various known encryption techniques and/or security protocols, such as SSL/TLS protocols, may be employed. However, even with such security measures, vulnerabilities to the data in transit exist. Further, security of the server from attacks also can also be of concern.
One solution proposed is the formation and employment of a decentralized system. Although blockchain techniques have been utilized to provide data security for decentralized systems, blockchains are limited in their abilities to store high volumes of data, and current techniques lack the ability to provide application-level data sharing. Further still, existing blockchain solutions focus on allowing a user to access and store his/her files, as opposed to being able to securely share files with others.